package com.engine.salary.entity.siarchives.dto;

import com.engine.salary.annotation.Auth;
import com.engine.salary.annotation.TableTitle;
import com.engine.salary.enums.auth.AuthCheckTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.Set;

/**
 * @Author: sy
 * @Description:
 * @Date: 2023/10/16
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Auth(page = "siArchive", checkType = AuthCheckTypeEnum.TAX_EMP, taxAgentIdField = "paymentOrganization", employeeIdField = "employeeId")
public class InsuranceArchivesBaseHistoryDTO {

    private Long id;

    /**
     * 人员id
     */
    private Long employeeId;

    /**
     *个税扣缴义务人id
     */
    private Long paymentOrganization;

    /**
     * 福利类型
     */
    private Integer welfareType;

    /**
     * 调整前方案id
     */
    private Long adjustBeforeSchemeId;
    /**
     * 调整后方案id
     */
    private Long adjustAfterSchemeId;

    /**
     * 调整的福利项id
     */
    private Long adjustWelfareItemId;

    /**
     * 操作人
     */
    private Long operator;

    private String tenantKey;

    private Long creator;

    private Integer deleteType;

    private Date createTime;

    private Date updateTime;


    private String adjustBeforeBaseJson;

    private String adjustAfterBaseJson;

    private String adjustBeforeComBaseJson;

    private String adjustAfterComBaseJson;

    @TableTitle(title = "对象", dataIndex = "employeeName", key = "employeeName")
    private String employeeName;
    @TableTitle(title = "个税扣缴义务人", dataIndex = "paymentOrganizationName", key = "paymentOrganizationName")
    private String paymentOrganizationName;
    @TableTitle(title = "福利项名称", dataIndex = "welfareItemName", key = "welfareItemName")
    private String welfareItemName;
    @TableTitle(title = "缴费对象", dataIndex = "paymentScope", key = "paymentScope")
    private String paymentScope;
    @TableTitle(title = "调整前方案", dataIndex = "adjustBeforeSchemeName", key = "adjustBeforeSchemeName")
    private String adjustBeforeSchemeName;
    @TableTitle(title = "调整前基数", dataIndex = "adjustBeforeBaseValue", key = "adjustBeforeBaseValue")
    private String adjustBeforeBaseValue;
    @TableTitle(title = "调整后方案", dataIndex = "adjustAfterSchemeName", key = "adjustAfterSchemeName")
    private String adjustAfterSchemeName;
    @TableTitle(title = "调整后基数", dataIndex = "adjustAfterBaseValue", key = "adjustAfterBaseValue")
    private String adjustAfterBaseValue;
    @TableTitle(title = "操作人", dataIndex = "operatorName", key = "operatorName")
    private String operatorName;
    @TableTitle(title = "操作时间", dataIndex = "operateTime", key = "operateTime")
    private Date operateTime;


    private Set<String> opts;
}
